package com.sprometheus.core.anno;


import com.sprometheus.core.constants.SPrometheusTitleEnum;
import com.sprometheus.core.constants.Scene;

import java.lang.annotation.*;

/**
 * 监听器
 * <p>
 * 当你不想修改代码时，可以使用该注解
 * <p>
 * 若将该注解添加在 方法或controller上，那么方法/类的所有异常都会被捕获
 * <p>
 * 默认只会捕获(什么都不加)：Exception
 * <p>
 * 注意!：SPrometheusException > SPrometheus > Exception
 *
 * @author 风白羽
 * @date 2024/9/5 下午4:55
 */
@Documented
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface SPrometheus {

    //功能描述
    SPrometheusTitleEnum title() default SPrometheusTitleEnum.OTHER;

    //接口地址
    String uri() default "";

    //推送至开发还是业务群
    Scene scene() default Scene.BUSINESS;
}
